package cn.o.app.queue;

import java.util.List;

import cn.o.app.event.Listener;
import cn.o.app.task.ContextOwnerTask;

@SuppressWarnings("unchecked")
public class QueueItem<QUEUE_ITEM extends IQueueItem<QUEUE_ITEM>> extends
		ContextOwnerTask implements IQueueItem<QUEUE_ITEM> {

	@Override
	protected void onStop() {
		List<Listener> listeners = getListeners();
		for (Listener listener : listeners) {
			if (listener instanceof IQueueItemListener) {
				((IQueueItemListener<QUEUE_ITEM>) listener)
						.onStop((QUEUE_ITEM) this);
			}
		}
	}

	@Override
	protected void onStart() {
		List<Listener> listeners = getListeners();
		for (Listener listener : listeners) {
			if (listener instanceof IQueueItemListener<?>) {
				((IQueueItemListener<QUEUE_ITEM>) listener)
						.onStart((QUEUE_ITEM) this);
			}
		}
	}

}
